/**
 * Setvor project
 */
package setvor.lang;

/**
 * An abstract machine is described like a set of states; this interface
 * represent the basic methods that is necessary for implement an state.
 * @author julatec
 */
public interface State<T extends State<T>> {

	/**
	 * Test if this state is initial. 
	 * @return true if this state is initial, otherwise false.
	 */
	boolean isInitial();
	
	/**
	 * Test if this state is final.
	 * @return true if this state is final, otherwise false.
	 */
	boolean isFinal();
	
}
